/**
 * @param {number[]} ratings
 * @return {number}
 */
 var candy = function(ratings) {
    let n = ratings.length // 获得学生的个数
    let candys = new Array(n).fill(1) // 初始化糖果数组 初始值都是1 每个孩子必须分到一个糖果
    for(let i = 1;i < n;i++){
      if(ratings[i] > ratings[i-1]){ // 如果后面的的分数大于这个的分数 那么后面的糖果的数量就是前面的数量+1
        candys[i] = candys[i-1] + 1
      }
    }
    // 从后向前遍历 如果这个的分数大于后面的分数 那么就取后面的糖果数量+1和前面得到的糖果数量的最大值
    for(let i = n - 2;i >= 0;i--){
      if(ratings[i] > ratings[i+1]){
        candys[i] = Math.max(candys[i+1]+1,candys[i])
      }
    }
    return candys.reduce((sum,val)=>sum+val)
};